feat(catalog): add real popularity signal (Spec 110) - #1408
Merged
Merged
Conversation
Deploying mcpproxy-docs with
|
| Latest commit: |
3ef2a30
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://b4b28a9f.mcpproxy-docs.pages.dev |
| Branch Preview URL: | https://codex-110-catalog-popularity.mcpproxy-docs.pages.dev |
|
Codecov Report❌ Patch coverage is 📢 Thoughts on this report? Let us know! |
Contributor
📦 Build ArtifactsWorkflow Run: View Run Available Artifacts
How to DownloadOption 1: GitHub Web UI (easiest)
Option 2: GitHub CLI gh run download 36449314127 --repo smart-mcp-proxy/mcpproxy-go
|
github-actions Bot
pushed a commit
that referenced
this pull request
Sep 29, 2026
…se test gaps (#1418) Follow-up hardening of the catalog popularity provider (Spec 110) from #1408. - Cache-cap eviction no longer holds the provider mutex across the bbolt delete transaction. Memory eviction happens under `p.mu`; store writes go through `persist()` outside it, serialised by a separate lock, with guards so a delayed put cannot resurrect an evicted key and a delayed delete cannot drop a re-added one. - Removed the dead lazy store fallback in `getEntryLocked` (the constructor preloads every persisted entry); test renamed and comments aligned with the eager-load contract. - New tests: concurrent Lookup vs. eviction with a blocked store (and a `-race` stress test), provider-level rolling budget request counts, fresh positive/negative entries not re-enqueued before TTL, generic `GITHUB_TOKEN` ignored, exact versioned User-Agent, breaker table (429/Retry-After seconds and date, 403, low-remaining) and recovery after the clock passes the pause. Closes #1410
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds real catalog popularity using GitHub repository stars and Docker Hub pull counts, with bounded background refresh, persistent caching, stale-value handling, and an opt-out switch. The Popular section includes only servers with a known positive signal; Official remains in source order.
This pull request contains the Spec 110 backend/API and CLI search behavior (PR A). Web and macOS popularity badges and the CLI popularity column remain tracked as T020–T023 for a follow-up.
Implements Spec 110:
specs/110-catalog-popularity/.Verification:
go build ./...;go test -race ./internal/registries/... ./cmd/mcpproxy/...; focused server-tag catalog REST tests. The full server-tag race batch exceeded the local run window; both configured local golangci-lint passes completed with existing diagnostics in unrelated files.